interface Icon {
  icon: string
}

export interface BasicResult extends Record<string, any> {
  id: string
  type: string
  title: string
  link: string
  subTitle?: string
  recent?: boolean
  favorite?: boolean
  pinyin?: string
  pinyinHead?: string
}

export interface LiverResult extends BasicResult {
  type: "Liver"
}

export interface SingleItemResult extends BasicResult, Partial<Icon> {
  type: "物品"
}

export interface EnchantmentsResult extends BasicResult {
  type: "附魔"
}

export interface BiomesResult extends BasicResult, Partial<Icon> {
  type: "生物群系"
}

export interface BlocksResult extends BasicResult, Partial<Icon> {
  type: "方块"
}

export interface EffectsResult extends BasicResult, Partial<Icon> {
  type: "Buff/Debuff"
}

export interface EntitiesResult extends BasicResult, Partial<Icon> {
  type: "实体"
}

export interface MemesResult extends BasicResult {
  type: "梗"
}

export interface FAQResult extends BasicResult {
  type: "FAQ"
  content: string
}

export interface RecentResult extends BasicResult {
  type: "最近搜索"
}

export interface FavoriteResult extends BasicResult {
  type: "已收藏"
}

export interface OtherResult extends BasicResult {
  type: "其他"
}

export type ItemResult =
  SingleItemResult |
  EnchantmentsResult |
  LiverResult |
  BiomesResult |
  BlocksResult |
  EffectsResult |
  EntitiesResult |
  MemesResult |
  FAQResult |
  RecentResult |
  FavoriteResult |
  OtherResult